package modelo.hibernate.dao;

import java.util.ArrayList;

import java.util.List;
import modelo.hibernate.config.Sesion;
import org.hibernate.Session;
import org.hibernate.Transaction;
import modelo.entidad.*;

public class DaoTipoPublicacion {
	
	private Sesion sesionPostgres;
	

	public List<Tipopublicacion> obtenerTodos() throws Exception {            
      
		List<Tipopublicacion> datos = new ArrayList<Tipopublicacion>();  
	  Session em = sesionPostgres.openSession();  	
        try {  	
	    datos =  (List<Tipopublicacion>) em.createCriteria(Tipopublicacion.class).list();             
        } catch (Exception e) {             
       
         throw new Exception(e.getMessage(),e.getCause());
        } finally {  
          em.close();  
        } 
       
        return datos; 
	}	
	

	public Tipopublicacion findTipoPublicacionporNombre(String nombre) throws Exception{
		Tipopublicacion dato = new Tipopublicacion();
		Session em = sesionPostgres.openSession();
		try
		{
			dato = (Tipopublicacion)em.createQuery("SELECT p FROM Tipopublicacion p WHERE descripcion= '"+nombre+"'").uniqueResult();
			
		}catch (Exception e) {             
		       
	         throw new Exception(e.getMessage(),e.getCause());
	        } finally {  
	          em.close();  
	        }
		return dato;
	}
	
	public void actualizarProfesor(Tipopublicacion dato) throws Exception{
		@SuppressWarnings("static-access")
		Session em = sesionPostgres.openSession();  
         Transaction tx = null;  
         try {    
        	 tx = em.beginTransaction();
              em.update(dato);   
              tx.commit();  
         } catch (Exception e) {  
             tx.rollback();            
             e.printStackTrace();
             throw e;
         } finally {  
             em.close();  
         } 
	}
	
}
